package com.shujia.wyh.day23;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

/*
        IO的分类：
            流向：（以java程序为中心）
                输入流  读取数据
                输出流  写出数据

            数据类型：
                字节流：
                    字节输入流 读取数据 InputStream
                    字节输出流 写出数据 OutputStream
                字符流：
                    字符输入流 读取数据 Reader
                    字符输出流 写出数据 Writer
           怎么却分使用字节流还是字符流呢？使用电脑自带的记事本打开，如果你能看懂。就用字符流
           如果你看不懂，就用字节流。其实当我们上完IO流后，就知道字节流读写任何数据，因为电脑内部存储都是以字节去存储的
           如果不知道用什么，就用字节流。

           需求：往文件中写入一句话：“学大数据，来数加科技！”

           分析：
            1、这个操作最好使用字符流，但是，今天我只说字节流。因为字符流是基于字节流基础之上诞生的，所以我们今天只用字节流实现
            2、因为我们需要往文件中写入一句话。所以用输出流，而我们今天只说字节流，所以第一个学习的是字节输出流
         经过上节课的分析，我们最后采用的是字节输出流OutputStream
         但是通过观察API发现，OutputStream是抽象类，而我们知道抽象类是不能被实例化的
         要想实例化，我们就必须找一个具体的子类
         FileOutputStream
            public FileOutputStream(File file) throws FileNotFoundException 创建文件输出流以写入由指定的File对象表示的文件。
            public FileOutputStream(String name) throws FileNotFoundException创建文件输出流以指定的名称写入文件。

         1、创建对应字节输出流对象
         2、调用对象中的方法写数据
         3、释放资源
            问题：为什么要做释放资源？


 */
public class FileOutputStreamDemo1 {
    public static void main(String[] args) throws IOException {
        //创建文件字节输出流对象
        //public FileOutputStream(File file)
//        File file = new File("out1.txt");
//        //如果目标文件不存在，就会创建空的文件
//        FileOutputStream fos = new FileOutputStream(file);

        //如果目标文件不存在，就会创建空的文件
        FileOutputStream fos = new FileOutputStream("out2.txt");

        //调用对象中的方法写数据
        //public void write(byte[] b)
        fos.write("学大数据，来数加科技！".getBytes());

        //释放资源
        fos.close();



    }
}
